Since the advent of the first electronic computers in the 1940's, computers have continued to handle a greater variety of increasingly complex tasks. Advances in semiconductors and other hardware components have evolved to the point that current low-end desktop computers can now handle tasks that once required roomfuls of computers.
Computer programs, which are essentially the sets of instructions that control the operation of a computer to perform tasks, have also grown increasingly complex and powerful. While early computer programs were limited to performing only basic mathematical calculations, current computer programs handle complex tasks such as voice and image recognition, predictive analysis and forecasting, multimedia presentation, and other tasks that are too numerous to mention.
However, one common characteristic of many computer programs is that the programs are typically limited to performing tasks in response to specific commands issued by an operator or user. A user therefore must often know the specific controls, commands, etc. required to perform specific tasks. As computer programs become more complex and feature rich, users are called upon to learn and understand more and more about the programs to take advantage of the improved functionality.
In addition to being more powerful, computers have also become more interconnected through private networks such as local area networks and wide area networks, and through public networks such as the Internet. This enables computers and their users to interact and share information with one another on a global scale. However, the amount of information is increasing at an exponential rate, which makes it increasingly difficult for users to find specific information.
As a result of the dramatic increases in the both complexity of computer programs and the amount of information available to users, substantial interest has developed in the area of intelligent agent computer programs, also referred to as intelligent agents or simply agents, that operate much like software-implemented “assistants” to automate and simplify certain tasks in a way that hides their complexity from the user. With agents, a user may be able to perform tasks without having to know specific sequences of commands. Similarly, a user may be able to obtain information without having to know exactly how or where to search for the information.
Intelligent agents are characterized by the concept of delegation, where a user, or client, entrusts the agents to handle tasks with at least a certain degree of autonomy. Intelligent agents operate with varying degrees of constraints depending upon the amount of autonomy that is delegated to them by the user.
Intelligent agents may also have differing capabilities in terms of intelligence, mobility, agency, and user interface. Intelligence is generally the amount of reasoning and decision making that an agent possesses. This intelligence can be as simple as following a predefined set of rules, or as complex as learning and adapting based upon a user's objectives and the agent's available resources. An intelligent agent's intelligence or skill as applied to a specific field or function is referred to as domain knowledge.
Mobility is the ability to be passed through a network and execute on different computer systems. That is, some agents may be designed to stay on one computer system and may never be passed to different machines, while other agents may be mobile in the sense that they are designed to be passed from computer to computer while performing tasks at different stops along the way. User interface defines how an agent interacts with a user, if at all.
Agents have a number of uses in a wide variety of applications, including systems and network management, mobile access and management, information access and management, collaboration, messaging, workflow and administrative management, and adaptive user interfaces. Another important use for agents is in electronic commerce, where an agent may be configured to seek out other parties such as other users, computer systems and agents, conduct negotiations on behalf of their client, and enter into commercial transactions.
The relative performance of intelligent agents in handling certain tasks may vary between agents, e.g., depending upon the degree of domain knowledge possessed thereby. However, an agent which performs well when handling a particular task in one instance may not perform as well when handling other tasks, or even when handling the same type of task in other situations and under other circumstances. As a typical agent may experience a wide variety of situations when it is operating in a real world environment, a given agent will not always be able to provide its client with optimal performance. Moreover, it is often difficult, if not impossible, to develop an agent that is capable of handling all possible situations with equally proficient results.
For example, in electronic commerce applications, security is a major concern. Intelligent agents may be entrusted with the authority to sell or purchase products on behalf of a client, and may be dispatched to any number of computer systems in a network to perform negotiations. Often, the computer systems to which the agents are dispatched are remote to the client's system, and thus not under the direct control of the client. An agent may thus be subject to scrutiny by third parties, either through monitoring transmissions between the agent and its client, or through actual scanning and reverse compiling of the program code of the agent. In some instances, the risk may be segregated into transmission risk, which is associated with the transmission media between the agent and the client, and environment risk, which is associated with the environment in which the agent is resident. Each type of risk may present unique concerns for a given agent.
Beyond the clear risk of discovering confidential information such as a client's credit card or bank account number, additional risks are posed when an agent is subject to scrutiny. As an example, an agent would be placed at a competitive disadvantage if any of its negotiation strategies, techniques or plans, or any specific instructions from its client, were discovered by other parties. If a message to an agent from its client indicates that the agent should offer $100, but is authorized to go as low as $90, another party that intercepts this message immediately knows that a transaction may be completed at the lower price. Also, even if the message is not intercepted, if the agent has stored the $90 price as its lowest authorized offer, reverse compilation or scanning of the agent by another party may lead to similar results.
The degree of domain knowledge such as autonomy granted to an agent by its client, and the remaining domain knowledge retained by the client, may vary significantly for different agents. In general, however, the more domain knowledge that is imparted to an agent, the greater the security risk presented to the agent and its client.
Often, a tradeoff must be made between absolutely secure agent transactions with prohibitively high costs, and less secure agent transactions with acceptable costs. The greatest security would be obtained when most, if not all, of the domain knowledge for conducting negotiations is retained by the client, with only a limited intermediary agent sent out to relay messages between the client and the other party being negotiated with. However, this configuration would present significant time and cost burdens on the client since all decision making would remain with the client, and since multiple messages would likely need to be transmitted between the client and the other party. Given these likely burdens, there would be little, if any, benefit in utilizing an agent at all. This would especially be the case in operating environments where the security risks are known to be small.
Security risks are also present for other applications of intelligent agents. For example, a client may have developed an agent with a unique search engine that greatly outperforms its competitors' designs. In certain operating environments, the agent may be more likely to be intercepted and copied by competitors—a situation that the client would prefer to avoid. However, without an agent mechanism that appropriately balances cost and security, the industry will continue to be limited by today's solutions.